草庐IT

VBScript 条件语句

全部标签

c++ - 我如何在不放置 '#include' 语句的情况下访问 cpp 标准库?

我一直在零星地从“加速C++”自学cpp,最近我注意到当我忘记我的#include时声明,我的代码(包括transform和find_if)无论如何都编译并成功运行。在此之后,我尝试完全删除所有标准header包含语句,发现我的代码仍然可以运行。我想我无法理解预处理器命令的问题会在我读完这本书时得到解决,但现在我只需要知道如何确保当我不正确地制作标题时我的终端会对我大喊大叫,这样我就可以学习东西位于std库中的位置。我运行的是OS10.6.5,所以我必须使用以下unixexe文件编译我的代码:CC=g++CFLAGS=-WallPROG=TrainingProject23SRCS=Tr

c++ - C++中的多个if语句

我正在做第一个项目欧拉问题,我刚刚做了这个#includeusingnamespacestd;intmain(){intthrees=0;intfives=0;intboth=0;for(inti=0;i我的教授最近纠正了我在另一个问题中这样做的问题,他说了一些关于else语句的内容,但我不明白为什么我必须在下一个if前面添加else。对于它的值(value),我有另一个版本elseif(i%5){fives+=....}他们都工作并为我提供了正确的答案。我的问题是这种思维方式本质上有什么问题,是风格上的问题还是我没有从逻辑上思考某些事情?如果可行,为什么还要使用switch语句?

c++ - 这个条件是如何解析的?

对于某些上下文,条件用于查找链表循环的普通类型算法:来自链接:http://vijayinterviewquestions.blogspot.com/2007/05/how-would-you-detect-loop-in-linked.htmlp=head;q=head->next;while(p!=NULL&&q!=NULL){if(p==q){//Loopdetected!exit(0);}p=p->next;q=(q->next)?(q->next->next):q->next;}//Noloop.行是什么:q=(q->next)?(q->next->next):q->next

c++ - 如何知道正在运行的进程正在执行哪条语句

我有一个进程突然挂起,没有提供任何核心转储,也没有被杀死。我可以使用ps命令看到它仍在运行。我怎么知道它当前在代码中执行的是哪条语句。基本上我想知道它到底卡在哪里。语言是c++,平台是solarisunix。demos.283>cattest3.cc#include#includeintmain(){sleep(100);return0;}demos.284>CCtest3.ccdemos.285>./a.out&[1]2231demos.286>ps-o"pid,wchan,comm"PIDWCHANCOMMAND23420fffffe86e9a5aff6-tcsh2345-ps22

c++ - 可以在 C++03 中有条件地声明友元类吗?

我只想在某些(编译时)条件为真时声明一个友元类。例如://pseudo-C++classFoo{if(some_compile_time_condition){friendclassBar;}};我在互联网上没有找到任何解决方案。我浏览了问题的所有答案GeneratingStructuresdynamicallyatcompiletime.他们中的许多人使用C++11std::conditional,但我想知道是否可以在C++03不使用预处理器的情况下执行此操作.此解决方案https://stackoverflow.com/a/11376710/252576将不起作用,因为friend

c++ - 条件运算符可以返回引用吗?

我遇到了一行代码,但从未想过它会运行良好。我认为条件运算符的返回值不适用于引用。一些伪代码:#includeusingnamespacestd;classA{public:A(intinput):v(input){};voidprint()const{cout谁能解释一下?谢谢。 最佳答案 您对条件运算符的假设是错误的。表达式的类型是表达式c.getA()和c.getB()具有的任何类型,如果它们具有相同的类型,并且如果它们表示左值,那么整个表达式也是如此。(具体规则在C++标准的§5.16中。)你甚至可以这样做:(conditio

c++ - 静态局部变量中的竞争条件

我目前正在阅读EffectiveC++。有一个关于使用静态局部变量的部分,它说如果多个线程访问一个静态变量,则在该变量的初始化期间可能会出现竞争条件。至少这是我的解释。这是真的?例如,在C#中,类静态变量的初始化永远不会出现竞争条件。例如,此代码在静态变量初始化期间是否存在竞争条件?FileSystem&tfs(){staticFileSystemfs;returnfs;}以下是书中的异常(exception)情况。Here'sthetechniqueappliedtobothtfsandtempDir:classFileSystem{...};//asbeforeFileSystem

c++ - 一起使用 "new"和 "if"语句 - 语法相关

对不起大家。我的意思是在我发布的代码中有一个星号。请重新回答。我正在为同事做代码审查,我看到弹出以下语句:if((someClass*object1=newsomeClass)){//Dowork}这个说法和下面的说法一样吗?someClass*object1=newsomeClass;if(object1){//Dowork}我只是想看看它们是否相等,这样我们就不会遇到任何错误。 最佳答案 您不能在第一种形式的if条件内创建对象,除非类型立即出现在括号内,因此:if(someClass*object1=newSomeclass(.

c++ - 没有内部作用域的 if 语句?

Afaik,代码中的每一对{}都会创建一个新范围。即使它只是为了它而使用,没有任何if、for、函数或其他需要它的语句:voidmyFun(void){inta;{intlocal;}}我开始怀疑-当编写if语句时不使用大括号(带有1行正文)是否仍会创建一个新范围?voidmyFun(inta){intb;if(a==1)inttmp;//isthisonelocaltoif?elseinttmp2;//orthisone?b=2;//couldIusetmphere?} 最佳答案 N4140[stmt.select]/1读取:Th

c++ - 引用的条件分配

有比我对C++标准理解更深的人可以详细说明一下吗?这是我的示例程序#include#includeintmain(intargc,char*argv[]){conststd::stringmessage("helloworld");std::cout0)?message:"";std::cout在一台机器上它这样做:#g++--version&&g++str_test.cpp&&./a.outg++(Debian4.7.2-5)4.7.2Copyright(C)2012FreeSoftwareFoundation,Inc.Thisisfreesoftware;seethesourcef